package cn.golxen.rsms.service;


import cn.golxen.rsms.bean.bo.*;
import cn.golxen.rsms.bean.entity.GoodsMain;
import cn.golxen.rsms.bean.entity.GoodsPurchase;
import cn.golxen.rsms.bean.entity.GoodsStore;
import cn.golxen.rsms.bean.entity.GoodsType;
import cn.golxen.rsms.bean.vo.ResFrequentPurchaseGoodsAnalysisVo;
import cn.golxen.rsms.bean.vo.ResGoodsInfoVo;
import cn.golxen.rsms.bean.vo.ResGoodsSalesAnalysisVo;

import java.util.List;

public interface GoodsService {

    GoodsMain getBarcodeInfo(String code);
    List<GoodsMain> getGoodsMainList(List<String> codeList);
    ResGoodsInfoVo getGoodsInfo(String code, int storeId);
    ResGoodsInfoVo getGoodsInfo2(String code, int storeId);
    List<ResGoodsInfoVo> getGoodsInfoList(int storeId);
    List<ResGoodsInfoVo> getGoodsInfoList2(int storeId);
    List<String> getGoodsCodeList(int storeId);
    List<ResGoodsInfoVo> getGoodsInfoListByCodeList(List<String> codeList,int storeId);
    List<ResGoodsInfoVo> getGoodsInfoListByType(String type,int storeId);

    Double getSuggestedPrice(String code);

    int addGoodsStore(List<GoodsStore> goodsStoreList);
    int importExcel(ImportExcelBo importExcelBo);
    int updateGoodsMainSuggestedPrice(String code);
    int addGoodsTypeNx(String Type);
    List<GoodsType> getGoodsTypeList();
    int delGoodsStoreList(DelGoodsStoreBo delGoodsStoreBo);
    int updateGoodsStore(List<GoodsStore> goodsStoreList);
    int addGoodsNum(List<AddOrOutGoodsNumBo> addOrOutGoodsNumBoList);


    List<ResGoodsInfoVo> getGoodsInfoByNameOrCode(int store, String nameOrCode);
    List<ResGoodsSalesAnalysisVo> getNewGoodsStore(int store);

    List<ResGoodsSalesAnalysisVo> getGoodsHotSale(int store);

    List<ResGoodsSalesAnalysisVo> getGoodsUnsalable(int store);

    List<ResFrequentPurchaseGoodsAnalysisVo> getFrequentPurchase(int store);

    int outGoodsNum(List<AddOrOutGoodsNumBo> addOrOutGoodsNumBoList);

    int addGoodsPurchase(GoodsPurchase goodsPurchase);
    int delGoodsPurchase(List<Integer> ids);
    int updateGoodsPurchase(GoodsPurchase goodsPurchase);
    List<GoodsPurchase> getGoodsPurchase(int isDone,int storeId);

    int oneKeyAddGoodsNum(GoodsPurchase goodsPurchase);
    List<BusinessBigDataSelectionBo> getGoodsMainListOnBigDataSelection();
    List<ResGoodsSalesAnalysisVo> getGoodsSalesAnalysisByPeriod(BusinessDateBo bo);
    List<BusinessPriceAdjustSuggestBo> getGoodsStoreAndSuggestedPrice(int storeId);
    int delStore(int storeId);
}
